Function Invoke-ScheduledTask(){
    [CmdletBinding()]param(
		[string]$vdi=$env:COMPUTERNAME,
		[string]$task_name,
		[string]$folder="\",
		[string]$domain="nam",
		[string]$fid="aaadmin",
		[string]$pswd,
		[Microsoft.Win32.TaskScheduler.Task]$task,
		[boolean]$refresh
	)
	Try{
		if( ! $PSBoundParameters.ContainsKey('task') ){
			$task = Get-ScheduledTaskEX $vdi $task_name $folder $domain $fid $pswd $refresh
			if(!$task){ "Not found task <$task_name> in folder <$folder> in $vdi"}
		}
		$task.Enabled=$true # incase it's been disabled previously
		$task.run()
	}Catch{
		throw $_
	}Finally{}
}